perm filename MELOOP.PUB[OK,TES] blob
sn#065402 filedate 1973-10-02 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00005 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .<< PUB DECLARATIONS >>
C00011 00003 .<< DEFINITIONS AND MACROS FOR BIT TABLES >>
C00014 00004 .<< TITLE PAGE >> BLANK PAGE
C00016 00005 .UUO(ACTCHR,CALLI,400105)
C00017 ENDMK
C⊗;
.<< PUB DECLARATIONS >>
.
.PUBLISH←FALSE; << set to TRUE to get different headings for even/odd pages >>
.
.<< THESE ARE LEFT ON/OFF OVER THE WHOLE MANUSCRIPT FOR CONVENIENCE! >>
.TURN ON "{#%"
.TURN OFF "-" << Too many minus signs would be mistaken for hyphens. >>
.
.DEVICE XGP;
.
. FONT 6 "SHD40"
. FONT 5 "NGB25" << BOLD FONT FOR HEADINGS/TITLES >>
. FONT 4 "FIX20" << SOME EXAMPLES: SMALL FIXED WIDTH FONT >>
. FONT 3 "FIX25" << PREFORMATTED STUFF: FIXED WIDTH FONT >>
. FONT 2 "BDI25" << ITALICS (UNDERLINED WORDS) >>
. FONT 1 "BDR25" << NORMAL FONT: VARIABLE WIDTH >>
.IF XCRIBL THEN START
. !XGPLFTMAR ← 216;
. AT "⊗∪" STUFF "∩" ⊂
%2{}STUFF{}%*{ ⊃
.END ELSE START
. TURN ON "↓_"
. AT "⊗∪" STUFF "∩" ⊂
↓_STUFF_↓{ ⊃
.END
.
.HLINES← IF XCRIBL THEN 60 ELSE 52; << NUMBER OF LINES/PAGE >>
.WCHARS← IF XCRIBL THEN 81 ELSE 69; << NUMBER OF CHARS/LINE >>
.PAGE FRAME HLINES+1 HIGH WCHARS WIDE;
.TITLE AREA FOOTING LINE HLINES+1 CHARS 1 TO WCHARS;
.TITLE AREA HEADING LINES 1 TO 3 CHARS 1 TO WCHARS;
.AREA TEXTER LINES 4 TO HLINES CHARS 1 TO WCHARS;
.PLACE TEXTER;
.VARIABLE SECNAME, SSNAME, SSNUMBER;
.COUNT PAGE TO 999;
.COUNT SECTION;
.COUNT SUBSECTION IN SECTION PRINTING "!.1";
.COUNT APPENDIX;
.MACRO CAT(PHRASE,NAME) ⊂IF "PHRASE"≠NULL THEN
. IF "PHRASE"="←" THEN SEND INDEX ⊂}<{PAGE}≤NAME≥{⊃
. ELSE SEND INDEX ⊂}<{PAGE}≤PHRASE≥{⊃ ⊃
.AT "⊗→" SPECIFIC "↔" GENERIC "←" ⊂
.IF "GENERIC"≠NULL THEN
. START SEND INDEX ⊂}<{PAGE}≤GENERIC, SPECIFIC≥{⊃; "SPECIFIC GENERIC"; END
.ELSE START SEND INDEX ⊂}<{PAGE}≤SPECIFIC≥{⊃; "SPECIFIC"; END ⊃
.SEND INDEX ⊂}<⊗∪see front cover∩≤UUOs by name≥{⊃
.SEND INDEX ⊂}<⊗∪see back cover∩≤UUOs by number≥{⊃
.MACRO UUO (NAME,OPCODE,OP2) ⊂
.SKIP 3
.BEGIN NOFILL GROUP; TABS 9; TURN ON "\";
%5NAME%*\{IF "OPCODE"="CALLI" THEN
. START; "[OP=047, ADR=OP2] CALLI OP2"; CAT "NAME UUO (CALLI OP2)";
. SEND NAMETABLE ⊂}<NAME≤CALLI OP2≥{PAGE}>{⊃ END
.XTDUUO(TTYUUO,051,OPCODE,OP2,NAME)
.XTDUUO(PTYUUO,711,OPCODE,OP2,NAME)
.XTDUUO(PPIOT,702,OPCODE,OP2,NAME)
.XTDUUO(PGIOT,715,OPCODE,OP2,NAME)
.XTDUUO(INTUUO,723,OPCODE,OP2,NAME)
.XTDUUO(MAIL,710,OPCODE,OP2,NAME)
.ELSE START; "[OP=OPCODE]"; CAT "NAME UUO (UUO OPCODE)";
. SEND NAMETABLE ⊂}<NAME≤OPCODE≥{PAGE}>{⊃ END
.TURN OFF; SVERBATIM
------------------------------------------
.⊃
.MACRO XTDUUO(GROUPNAME,OPCODE,NAME,ACFIELD,SPECUUO)⊂ELSE IF "NAME"="GROUPNAME" THEN
.START; "[OP=OPCODE, AC=ACFIELD] GROUPNAME ACFIELD,";
. CAT "SPECUUO UUO (GROUPNAME ACFIELD, )"
. SEND NAMETABLE ⊂}<SPECUUO≤GROUPNAME ACFIELD,≥{PAGE}>{⊃ END ⊃
.MACRO UUOX ⊂BEGIN SKIP 3; GROUP SVERBATIM
------------------------------------------
.⊃
.MACRO UEND ⊂SKIP; IF LINES > 2 THEN APART; FILL;
%1{ ⊃ << THIS USED TO BE A SELECT 1 >>
.MACRO SVERBATIM ⊂VERBATIM;
%3{ ⊃ << AND THIS USED TO BE A SELECT 3 >>
.<< DEFINITIONS AND MACROS FOR BIT TABLES >>
.<< HERE IS A SAMPLE MULTIPLE-BIT TABLE ENTRY:
. "30:35\0,,77\" END OF COMMENT >>
.BIT0 ← "400000,,0"
.BIT1 ← "200000,,0"
.BIT2 ← "100000,,0"
.BIT3 ← "40000,,0"
.BIT4 ← "20000,,0"
.BIT5 ← "10000,,0"
.BIT6 ← "4000,,0"
.BIT7 ← "2000,,0"
.BIT8 ← "1000,,0"
.BIT9 ← "400,,0"
.BIT10 ← "200,,0"
.BIT11 ← "100,,0"
.BIT12 ← "40,,0"
.BIT13 ← "20,,0"
.BIT14 ← "10,,0"
.BIT15 ← "4,,0"
.BIT16 ← "2,,0"
.BIT17 ← "1,,0"
.BIT18 ← "0,,400000"
.BIT19 ← "0,,200000"
.BIT20 ← "0,,100000"
.BIT21 ← "0,,40000"
.BIT22 ← "0,,20000"
.BIT23 ← "0,,10000"
.BIT24 ← "0,,4000"
.BIT25 ← "0,,2000"
.BIT26 ← "0,,1000"
.BIT27 ← "0,,400"
.BIT28 ← "0,,200"
.BIT29 ← "0,,100"
.BIT30 ← "0,,40"
.BIT31 ← "0,,20"
.BIT32 ← "0,,10"
.BIT33 ← "0,,4"
.BIT34 ← "0,,2"
.BIT35 ← "0,,1"
.MACRO BITSTABLE(NM,TITLE)⊂BEGIN
. NARROW 2,2; GROUP; TABS 8,22,31; TURN ON "\";
. NAMING←"NM";
. IF "NM"=NULL THEN TABLEINDENT←21 ELSE TABLEINDENT←30;
. INDENT 0,TABLEINDENT;
⊗∪Bits\Octal\{IF "NM"≠NULL THEN "Name\"}TITLE∩
. BREAK ⊃
.MACRO EVAL(εX) ⊂ X ⊃
.MACRO B(NBR,NAME,EXTRA) ⊂"NBR\";(BVALUE←EVAL("BIT"&"NBR"));"\";
.IF NAMING≠NULL THEN START
.IF "EXTRA"="*" THEN "* ";
NAME\{
.IF "NAME"≠NULL THEN SEND INDEX ⊂}<{PAGE}≤NAME bit ({BVALUE}--{NAMING})≥{⊃
.END ⊃
.<< TITLE PAGE >> BLANK PAGE
.
.PORTION TITLEPAGE
.
.NOFILL; TURN ON "→";
%5STANFORD ARTIFICIAL INTELLIGENCE LABORATORY→September 1973
OPERATING NOTE 55.3
.TURN OFF
.IF XCRIBL THEN SKIP 5
.SKIP 7; CENTER
U U O M A N U A L
.SKIP 3
by
.SKIP 2
Martin Frost
.FILL
.IF XCRIBL THEN SKIP 6;
.
.SKIP 4;
%1ABSTRACT:
This document describes the UUOs (monitor calls) available
to users of the Stanford Artificial Intelligence Laboratory timesharing system.
Additional general information relevant to the use of the UUOs is contained
in the introductory section, and some useful
tables are included in the appendices.
This manual supersedes SAILON 55.2 by Andy Moorer (Monitor Manual,
Chapter II).
.IF XCRIBL THEN SKIP 4
.SKIP 6;
This work was supported by the Advanced Research Projects Agency of
the Office of the Secretary of Defense under contract SD-183.
.SECNAME ← SSNUMBER ← SSNAME ← NULL
.IF PUBLISH THEN START
. ODD HEADING(%5{SSNUMBER},,{SSNAME} {PAGE}%*);
. EVEN HEADING(%5{PAGE} {SECNAME},,{SSNUMBER}%*);
.END ELSE EVERY HEADING(%5{SSNUMBER} {SSNAME},,{SECNAME} {PAGE}%*);
.PORTION MAINPORTION
.UUO(ACTCHR,CALLI,400105)
.END << THE MACRO "UUO" DOES A "BEGIN" >>